{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1. 什么是偏差-方差平衡\n",
    "偏差是由于学习算法中的错误或者过于简单的假设导致的错误， 会使模型欠拟合数据。  \n",
    "方差是由于使用的模型过于复杂导致的错误，会使模型过拟合数据，会使得在训练集上表现很好，而测试集上表现很差。  \n",
    "为了获得最佳的误差量，必须权衡偏差和方差。不希望模型中出现高偏差或高方差。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. 监督和非监督学习的差异性\n",
    "监督学习需要训练数据中包含标签数据；而非监督学习则不需要标签数据。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####  3. KNN 和k-means聚类的差异性\n",
    "kNN(K-Nearest-Neighbors)是监督学习算法，而k-means是非监督学习算法。数学机制方面类似，kNN需要计算与分类点最近的k个点。而k-means需要距离最近的一组点和一个阈值：算法通过计算k个点与其他点的最近距离，将其进行聚类。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4. 解释ROC曲线是如何工作的\n",
    "ROC曲线是将true positive rate 和flase positive rate进行对比(与阈值相关)的一种图形化表示方法。通常被用来作为模型的灵敏度(true positive)与误报(false positive)之间的权衡。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 5. 定义精度和召回率\n",
    "精确度是针对预测结果而言的，表示的预测为正的样本中有多少个是真正的正样本。预测为正有两种可能性，一种正类预测为正类，另一种负类预测为正类。即 $P =(TP) / (TP + FP)$.  \n",
    "而召回率是针对原来的样本而言的，表示的是预测为正的样本中多少被预测正确。也有两种可能，一种把原来的正类预测为正类，另一种把原来的正类预测为负类。即&R = (TP) / (TP + FN)&"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 6 介绍贝叶斯定理，如何使用？\n",
    "贝叶斯定理基于先验概率和目前信息，可以计算后验概率。  \n",
    "$P(A|B) = \\frac{P(B|A)P(A)}{P(B)}$  \n",
    "其朴素贝叶斯分类器是机器学习的一个分支。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 7 朴素贝叶斯分类器朴素在哪\n",
    "虽然朴素贝叶斯具有实际应用，特别是在文本挖掘中。因为其做的假设：条件概率为单个事件发生概率的乘积，意味着特征独立，在现实情况中几乎不可能，因此朴素。  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 8. L1和L2正则的不同\n",
    "L2正则趋向于将误差分散到所有项中，而L1是二进制/稀疏的，许多变量的权重要么是1，要么是0。L1对应于在条件上设置一个Laplacean先验，L2对应于高斯先验。 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 9. 深度学习和其他机器学习方法的差异\n",
    "深度学习是与神经网络相关的一种机器学习方法：如何利用反向传播和神经科学的某些原理来更准确地模拟大量的无标记或半结构化数据。从这个意义上说，深度学习代表了一种无监督学习算法，它通过使用神经网络来学习数据的表示。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 10. 生成模型和判别模型的差异性\n",
    "生成模型学习数据类别，而判别模型只会学习不同类别的数据之前的区别。判别模型在分类任务上回由于生成模型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 11. 在时间序列数据中怎么使用交叉验证\n",
    "不同于使用标准k-folds交叉验证， 必须注意数据不是随机分布，而是时间序列。\n",
    "* fold 1 : training [1], test [2]\n",
    "* fold 2 : training [1 2], test [3]\n",
    "* fold 3 : training [1 2 3], test [4]\n",
    "* fold 4 : training [1 2 3 4], test [5]\n",
    "* fold 5 : training [1 2 3 4 5], test [6]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 12. 决策树怎么剪枝\n",
    "决策树中，当具有较弱预测能力的分支被删除(为了减少决策树模型的复杂度，提高准确率)是会发生剪枝， 修剪可以自底向上和自顶向下进行，包括减少错误修剪和降低复杂度修剪。  \n",
    "减少错误修剪比较简单：替换每个叶子节点。如果没有减少预测准确度，就进行修剪。虽然很简单，但这种启发式实际上非常接近一种能够优化最大精度的方法。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 13. F1分数是什么？怎么使用？\n",
    "F1分数是模型性能的一种度量， 是模型精确度(precision)和召回率(recall)的平均值， 结果越接近1越好。可以把它用在分类测试中，在这些测试中，真正的父类不太重要。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 14. 怎么处理不平衡的数据集？\n",
    "比如在分类任务中，90%的数据都是同一类，那么任何一个分类器的精确度都会在90%以上。一般有以下方法进行处理：\n",
    "1. 收集更多的数据，即使数据不平衡\n",
    "2. 重新采样数据集以纠正不平衡\n",
    "3. 在数据集上尝试不同的算法  \n",
    "  \n",
    "对不平衡的数据集可能造成的损害有敏锐的感觉，以及如何平衡这种损害。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 15. 什么时候应该用回归而不是分类\n",
    "分类产生离散值和严格分类的数据集，而回归则提供连续的结果，能够更好地区分各个点之间的差异。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 16. 集成方法为什么有效？\n",
    "集成技术使用学习算法的组合得到化更好的预测性能， 能显著降低过拟合，并增加模型的鲁棒性(不容易被数据集中的小变化影响)  列出一些集成方法的示例， 并说明如何增强预测能力。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 17. 怎么确定模型没有过拟合数据\n",
    "机器学习中的基本问题：过拟合训练数据并将该数据的噪声传递到测试集，从而提供不准确的预测。  \n",
    "主要有以下方法防止过拟合：\n",
    "1. 保持模型的简单性，通过考虑较少的参数和变量来减少方差， 从而消除训练集中的噪声。\n",
    "2. 使用类似k-folds的交叉验证技术。\n",
    "3. 使用正则化技术，比如LASSO，如果某些模型参数可能导致过度拟合，那么就对它们进行惩罚。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 18. 使用什么衡量方法来估计模型的有效性\n",
    "首先切分数据集为训练集和测试集，或者使用交叉验证技术，进一步切分。之后实现性能指标的选择器，比如F1分数，准确率或者混淆矩阵。重要的是要证明您理解模型如何度量的细微差别，以及如何为正确的情况选择正确的性能度量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 19. 什么是核技巧？如何使用？\n",
    "内核技巧涉及到内核函数，可在高维空间中启用，而不需显式的计算该维度内的点的坐标；相反，核函数在特征空间中计算所有成对数据图像之间的内积。这使得计算高位空间的坐标非常有用，同时比直接计算高位空间的坐标要方便。许多算法使用内积来表示，使用内核技巧可以在具有低维数据的高维空间中有效的运行算法。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 20. 怎么处理缺失和损坏的数据\n",
    "删除其所在的行或者列，或者使用其他值进行替换。在Pandas中，可以使用isnull()，dropna()， fillna()方法."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 线性和逻辑回归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SVM"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 贝叶斯分类， KNN， K-means"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 决策树"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 集成方法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 神经网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
